/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb.negocio;

import ejb.dao.PaisDAOLocal;
import ejb.dao.SesionDAOLocal;
import ejb.dao.UsuarioDAOLocal;
import entidades.Paises;
//import entidades.Provincias;
import entidades.Sesiones;
import entidades.Usuario;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import javax.ejb.EJB;
import javax.ejb.Remove;
import javax.ejb.Stateless;

/**
 *
 * @author Pablo
 */
@Stateless
public class UsuarioService implements UsuarioServiceLocal {

    private Usuario usuario;
    
    @EJB
    UsuarioDAOLocal usuarioDAO;
    @EJB
    SesionDAOLocal sesionDAO;
    @EJB
    PaisDAOLocal paisDAO;

    public Usuario abrirSesion(String nick, String password) {
        usuario = usuarioDAO.buscarNickPW(nick, password);
        if (usuario == null){
            //cerrar();
            return null;
        }
        else{
            //Registrar sesion
            Sesiones sesion = new Sesiones();
            sesion.setNick(usuario);
            sesion.setFechaHora(Calendar.getInstance().getTime());
            sesionDAO.newSesion(sesion);
            return usuario;
        }
    }
    
    @Remove    
    public void cerrar(){
        usuario = null;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    /*
    @Override
    public ArrayList<Provincias> getListaProvincias() {
        return usuarioDAO.listaProvincia();
    }
    */
    @Override
    public ArrayList<Paises> getListaPaises() {
        return usuarioDAO.listaPaises();
    }

    @Override
    public int creaUsuario(String nick, String password, String nombre, 
            String email, Date fecha_nac, Integer nacionalidad, String sexo) {
        usuario = usuarioDAO.compruebaNickEmail(nick, email);
        if (usuario == null){
            usuario = new Usuario();
            usuario.setNick(nick);
            usuario.setPassword(password);
            usuario.setEmail(email);
            //usuario.setProvincia(usuarioDAO.getProvincia(provincia));            
            if(!nombre.equals(""))
                usuario.setNombre(nombre);
            usuario.setFechaAlta(Calendar.getInstance().getTime());
            if(fecha_nac != null)
                usuario.setFechaNacimiento(fecha_nac);            
            if(nacionalidad!=null){
                usuario.setNacionalidad(paisDAO.getPais(nacionalidad));
                //usuario.setNacionalidad(paisDAO.getPaisName(nacionalidad));
            }    
            usuario.setSexo(sexo);
            usuarioDAO.newUsuario(usuario);
           
            return 0;
        }
        else{
            if (usuario.getNick().equals(nick))
                return 1;
            else
                return 2;
        }
    }

}
